﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace MusicPlayerPlus.Interface.Base.Action.Input
{
    /// <summary>
    /// (改变后事件)进度条改变
    /// </summary>
    public interface ITimeLineChangeAction
    {
        /// <summary>
        /// 执行
        /// </summary>
        /// <param name="max"></param>
        /// <param name="val"></param>
        void TimeLineChange(double max, double val);
    }
    /// <summary>
    /// (主动)进度条改变
    /// </summary>
    public interface IChangeTimeLineAction
    {
        /// <summary>
        /// 执行
        /// </summary>
        /// <param name="max"></param>
        /// <param name="val"></param>
        void ChangeTimeLine(double val);
    }
    /// <summary>
    /// (改变后事件)音量改变
    /// </summary>
    public interface IVolumeChangeAction
    {
        /// <summary>
        /// 执行
        /// </summary>
        /// <param name="val"></param>
        void VolumeChange(double val);
    }
    /// <summary>
    /// (主动)音量改变
    /// </summary>
    public interface IChangeVolumeAction
    {
        /// <summary>
        /// 执行
        /// </summary>
        /// <param name="val"></param>
        void ChangeVolume(double val);
    }
    /// <summary>
    /// 缓冲进度条改变
    /// </summary>
    public interface IBufferingTimeLineChangeAction
    {
        /// <summary>
        /// 执行
        /// </summary>
        /// <param name="max"></param>
        /// <param name="val"></param>
        void BufferingTimeLineChange(double max, double val);
    }
    /// <summary>
    /// 播放状态改变
    /// </summary>
    public interface IPlayStateChangeAction
    {
        /// <summary>
        /// 执行
        /// </summary>
        /// <param name="val"></param>
        void PlayStateChange(Model.Enum.MediaPlayState val);
    }
    /// <summary>
    /// 播放顺序改变
    /// </summary>
    public interface IPlayOrderChangeAction
    {
        /// <summary>
        /// 执行
        /// </summary>
        /// <param name="val"></param>
        void PlayPlayOrderChange(Model.Enum.MediaPlayPlayOrder val);
    }
    /// <summary>
    /// 播放
    /// </summary>
    public interface IPlayAction
    {
        /// <summary>
        /// 执行
        /// </summary>
        void Play();
    }
    /// <summary>
    /// 暂停
    /// </summary>
    public interface IPauseAction
    {
        /// <summary>
        /// 执行
        /// </summary>
        void Pause();
    }
    /// <summary>
    /// 停止
    /// </summary>
    public interface IStopAction
    {
        /// <summary>
        /// 执行
        /// </summary>
        void Stop();
    }
    /// <summary>
    /// 上一首
    /// </summary>
    public interface IPreviousTrackAction
    {
        /// <summary>
        /// 执行
        /// </summary>
        void PreviousTrack();
    }
    /// <summary>
    /// 下一首
    /// </summary>
    public interface INextTrackAction
    {
        /// <summary>
        /// 执行
        /// </summary>
        void NextTrack();
    }
}